﻿// =====================================================================
//
//  This file is part of the Microsoft Dynamics CRM SDK code samples.
//
//  Copyright (C) Microsoft Corporation.  All rights reserved.
//
//  This source code is intended only as a supplement to Microsoft
//  Development Tools and/or on-line documentation.  See these other
//  materials for detailed information regarding Microsoft code samples.
//
//  THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
//  PARTICULAR PURPOSE.
//
// =====================================================================


namespace SL.IdentityModel.Protocols.WSTrust
{
	/// <summary>
	/// Class is used to return results of a token issuance async call
	/// </summary>
	public class IssueCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] _results;


		/// <summary>
		/// Field returns the RequestSecurityResponse for the token request
		/// </summary>
		public RequestSecurityTokenResponse Result
		{
			get
			{
				base.RaiseExceptionIfNecessary();
				return _results[0] as RequestSecurityTokenResponse;
			}
		}

		/// <summary>
		/// Creates an instance of the class
		/// </summary>
		/// <param name="results">an array with a single element, containing a RequestSecurityTokenResponse</param>
		/// <param name="exception">an exception giving error information, null if no error occured</param>
		/// <param name="cancelled">flag indicating if async operation was cancelled</param>
		/// <param name="userState">userstate of the async call</param>
		public IssueCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			if (null == exception && false == cancelled)
			{
				_results = results;
			}
		}
	}
}
